package fivm.cross.platform.steamobj.appcase;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import fivm.cross.platform.ficommon.distinguish.FiObjectId;
import fivm.cross.platform.ficommon.distinguish.GsonSimpleSerializable;
import fivm.cross.platform.steamobj.app.AppConfigs;
import fivm.cross.platform.steamobj.sys.DeviceConfigs;


/**
 * Created by Administrator on 2016/5/18.
 * app 用例通用业务数据。通过泛型模板实现不同业务的扩展
 *
 */
public  class  CaseBusinessStream extends GsonSimpleSerializable {

    @Expose @SerializedName("DeviceConfigs")
    private DeviceConfigs deviceConfigs =new DeviceConfigs();
    @Expose @SerializedName("AppConfigsId")
    private FiObjectId appConfigsId=FiObjectId.NewNull;          //app的业务id

    /**
     * 运行用例的类型，比如是运行激活的、活跃用户等等
     * 如果是激活的，现场的app文件夹就需要清空
     * 如果是活跃的，就需要还原现场
     * */
    public final static int CASE_TYPE_ACTIVITY=0;   //激活
    public final static int CASE_TYPE_ALIVE=1;      //活跃
    @Expose @SerializedName("CaseType")
    private int caseType;     //一个用例应是对应一个参数

    /**
     * 以上的信息是一次用例运行的基本参数。
     * 而下面caseInteractiveControlStream这个参数是运行时动态的交互的数据流状态
     * */
    @Expose @SerializedName("InteractiveControl")
    private CaseInteractiveControlStream caseInteractiveControlStream;//交互的控制数据流

//    public FiObjectId getId() {
//        return id;
//    }
//
//    public void setId(FiObjectId id) {
//        this.id = id;
//    }


    public CaseInteractiveControlStream getCaseInteractiveControlStream() {
        return caseInteractiveControlStream;
    }

    public void setCaseInteractiveControlStream(CaseInteractiveControlStream caseInteractiveControlStream) {
        this.caseInteractiveControlStream = caseInteractiveControlStream;
    }

    public DeviceConfigs getDeviceConfigs() {
        return deviceConfigs;
    }

    public void setDeviceConfigs(DeviceConfigs deviceConfigs) {
        this.deviceConfigs = deviceConfigs;
    }

    public FiObjectId getAppConfigsId() {
        return appConfigsId;
    }

    public void setAppConfigsId(FiObjectId appConfigsId) {
        this.appConfigsId = appConfigsId;
    }

    public int getCaseType() {
        return caseType;
    }

    public void setCaseType(int caseType) {
        this.caseType = caseType;
    }
}
